const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
  const {
    userId
  } = event;
  const db = cloud.database()
  const _ = db.command
  const wxContext = cloud.getWXContext()

  try {
    // 1. 验证权限（只能删除没有删除的用户）
    // 获取用户详情
    const userDoc = await db.collection('users')
      .doc(userId)
      .field({
        isDeleted: true,
      })
      .get()
    // 1.1 检查用户是否存在
    if (!userDoc.data) {
      return {
        code: 404,
        message: '用户不存在'
      }
    }
    // 1.2 检查是否已删除
    if (userDoc.data.isDeleted) {
      return {
        code: 409,
        message: '用户已被删除'
      }
    }
    // 1.3 验证操作权限（只能创建者删除）
    // if (userDoc.data.publisher_id !== wxContext.OPENID) {
    //   return { code: 403, message: '无权操作: 仅发布者可删除' }
    // }
    // 2. 执行软删除（更新删除标记）
    await db.collection('users').doc(userId).update({
      data: {
        isDeleted: true,
        deletedAt: db.serverDate()
      }
    })
    return {
      code: 200,
      message: '删除成功'
    }
  } catch (err) {
    console.error(err)
    return {
      code: 500,
      message: '服务器错误'
    }
  }
}